import axios from 'axios'
import qs from 'qs'

let instance = axios.create({
  baseURL: 'http://localhost:2345',
  timeout: 1000,
  // headers: { 'X-Custom-Header': 'foobar' }
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // console.log(config);
  if (config.method == 'post') {
    config.data = qs.stringify({ ...config.data })
  } else {
    config.params = { ...config.params }
  }
  config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  console.log(response);
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default instance










// ==>>>>

// // axios拦截器的请求设置
// axios.interceptors.request.use(config => { // 这里的config包含每次请求的内容
//   // 判断localStorage中是否存在api_token
//   if (localStorage.getItem('api_token')) {
//     //  存在将api_token写入 request header
//     config.headers.apiToken = `${localStorage.getItem('api_token')}`;
//   }
//   return config;
// }, err => {
//   return Promise.reject(err);
// });

// // axios拦截器的响应设置
// axios.interceptors.response.use(response => {
//   return response;
// }, error => {
//   return Promise.resolve(error.response);
// });

// // 检查http状态码返回是否正常
// function checkStatus(response) {
//   // 如果http状态码正常，则直接返回数据
//   if (response && (response.status === 200 || response.status === 304 ||
//     response.status === 400)) {
//     return response;
//   }
//   // 异常状态下，把错误信息返回去
//   return {
//     status: -404,
//     msg: '网络异常'
//   };
// }

// // 检查异常code
// function checkCode(res) {
//   // 如果code异常(这里已经包括网络错误，服务器错误，后端抛出的错误)，可以弹出一个错误提示，告诉用户
//   if (res.status === -404) {
//     alert(res.msg);
//   }
//   if (res.data && (!res.data.success)) {
//     // alert(res.data.error_msg)
//   }
//   return res;
// }

// // 请求方式的配置
// export default {
//   post(url, data) { // post
//     return axios({
//       method: 'post',
//       baseURL: '/api',
//       url,
//       data: qs.stringify(data),
//       timeout: 5000,
//       headers: {
//         'X-Requested-With': 'XMLHttpRequest',
//         'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
//       }
//     }).then(
//       (response) => {
//         return checkStatus(response);
//       }
//     ).then(
//       (res) => {
//         return checkCode(res);
//       }
//     );
//   },
//   get(url, params) { // get
//     return axios({
//       method: 'get',
//       baseURL: '/api',
//       url,
//       params, // get 请求时带的参数
//       timeout: 5000,
//       headers: {
//         'X-Requested-With': 'XMLHttpRequest'
//       }
//     }).then(
//       (response) => {
//         return checkStatus(response);
//       }
//     ).then(
//       (res) => {
//         return checkCode(res);
//       }
//     );
//   }
// };